package fiuba.algo3.vehiculo;

import org.jdom2.Element;

import fiuba.algo3.obstaculo.ControlPolicial;
import fiuba.algo3.obstaculo.Obstaculo;
import fiuba.algo3.obstaculo.Piquete;
import fiuba.algo3.obstaculo.Pozo;

public class Camioneta4x4 implements Vehiculo {
	// Atributos
	int cantidadDeMovimientosPorTurno;

	// Metodos
	public Camioneta4x4() {
		cantidadDeMovimientosPorTurno = 0;
	}

	public int getCantidadDeMovimientosDelTurno() {
		return cantidadDeMovimientosPorTurno;
	}

	public void setCantidadDeMovimientosDelTurno(int movimientos) {
		cantidadDeMovimientosPorTurno = movimientos;
	}

	public Moto cambiarAlSiguienteVehiculo() {
		Moto unaMoto = new Moto();
		return unaMoto;
	}

	public void aplicarPozo(Pozo unPozo) {
		unPozo.aplicar4x4(this);
	}

	public void aplicarPiquete(Piquete unPiquete) {
		unPiquete.aplicar4x4(this);
	}

	public void aplicarControl(ControlPolicial unControl) {
		unControl.aplicar4x4(this);
	}

	public boolean puedoPasar(Obstaculo unObstaculo) {
		return unObstaculo.pasarCon4x4(this);
	}

	public boolean pasarPorPozo() {
		return true;
	}

	public boolean pasarPorPiquete() {
		return false;
	}

	public boolean pasarPorControl() {
		return true;
	}
	
	public Element serializar(){
		Element nodoCamioneta4x4 = new Element ("Vehiculo");
		nodoCamioneta4x4.setAttribute("cantidadDeMovimientosPorTurnos", Integer.toString(cantidadDeMovimientosPorTurno));
		nodoCamioneta4x4.setAttribute("tipoDeVehiculo", "camioneta4x4");
		return nodoCamioneta4x4;		
	}
	
	public Camioneta4x4(Element nodoCamioneta4x4){
		this.setCantidadDeMovimientosDelTurno(Integer.parseInt(nodoCamioneta4x4.getAttributeValue("cantidadDeMovimientosPorTurnos")));
	}
}
